Rapid video search system and method of using the same

ABSTRACT

A computer system for video management may provide a GUI that may enable repeating the steps of user thumbnail selection, representative subdivision of a recorded video to be viewed based on the thumbnail selected, and display of representative thumbnails in a GUI. The representative thumbnails may be selected based on a parameter such as random selection or images that may be evenly distributed from within the recorded video. After the representative subdivision of a recorded video to be viewed reaches a lower limit, the computer system for video management may display a shortened portion of video in the GUI to be viewed.

TECHNICAL FIELD

The field to which the disclosure generally relates includes videomanagement systems that may include a searchable video recordings andmethods of searching recorded video.

BACKGROUND

Video management systems and servers may be deployed in videosurveillance systems. Video management systems collect video fromcameras and other sources, record and store said video to storagedevices, and may provide a graphical user interface (GUI) to view videolive or access, search, and review recorded video.

A video management system or video surveillance system may include aplurality of cameras or other sources of video which may capture andrecord video segments to a storage device, such as, but not limited to ahard drive. Video management systems commonly store data such asrecorded video in file systems which manage data such as a filehierarchy. A video management system may also provide an interface suchas a GUI which allows and facilitates a user searching and reviewingpreviously recorded segments of video on a computer device. A user mayselect a desired time frame from which previously recorded video may bereviewed, and the computer device will load and display the selectedsegment of video to the user by loading the selected segment of videofrom the storage device. After which, the user may then manually searchthe segment of video for any desired portion or event via scrollingthrough the segment of video. Manual user search of a segment of videomay be time consuming and may require tedious scrolling through longdurations of video, often videos twenty-four hours in length, in orderto find an event or occurrence that may have taken place in only amatter of seconds. Large segments of video recorded in a traditionalfile hierarchy require long load times and high bandwidth usage if beingsearched from local, remote, or cloud storage.

SUMMARY OF ILLUSTRATIVE VARIATIONS

A computer system for video management may enable repeating the steps ofuser thumbnail selection, representative subdivision of a recorded videoto be viewed based on the thumbnail selected, and display ofrepresentative thumbnails in a GUI.

A computer system for video management may provide a GUI that may enablerepeating the steps of user thumbnail selection, representativesubdivision of a recorded video to be viewed based on the thumbnailselected, and display of representative thumbnails in a GUI. Therepresentative thumbnails may be selected based on a parameter such asrandom selection or images that may be evenly distributed from withinthe recorded video. After the representative subdivision of a recordedvideo to be viewed reaches a lower limit, the computer system for videomanagement may display a shortened portion of video in the GUI to beviewed.

A computer system for video management may record video and sequentialimages from a device such as a camera. The computer system for videomanagement may provide a GUI in a user accessible internet browser. TheGUI may be constructed and arranged to display particular images as userclickable or selectable thumbnails which may be hyperlinks. The GUI maybe constructed and arranged to allow user input of a duration ofrecorded video to be rapidly searched and a number of thumbnails to bedisplayed in the GUI. The computer system for video management mayreceive the user input and search a data storage medium or storageenvironment such as an object store for stored video and images. Thecomputer system for video management may divide the user input number ofthumbnails to be displayed in the GUI into a first duration of recordedvideo to be rapidly searched to determine which images may be displayedas representative thumbnails in the GUI. The computer system for videomanagement may select and display selectable thumbnails which arechronologically evenly distributed throughout the first duration ofvideo to be rapidly searched. Each thumbnail may correspond to aduration of video equal to the length of the original video beingsearched divided by the number of thumbnails to be displayed. Upon userselection of a particular thumbnail, the computer system for videomanagement may divide the user input number of thumbnails to bedisplayed in the GUI into a second duration of recorded video associatedwith the selected thumbnail to determine which images may be displayedas a second set representative thumbnails in the GUI of only the secondduration of recorded video. A user may select one of the thumbnails inthe second set of representative thumbnails and the computer system forvideo management may divide the user input number of thumbnails to bedisplayed in the GUI into a third duration of recorded video associatedwith the selected thumbnail to determine which images may be displayedas a third set representative thumbnails in the GUI of only the thirdduration of recorded video. These steps may be repeated until apredetermined lower limit or shortest duration of recorded video isreached after which the computer system for video management may loadfrom the storage environment the shortest duration of record video anddisplay it in the GUI for a user to view as video.

As a non-limiting example, a user wishing to review 24 hours of videoand view 6 thumbnails in the GUI may enter such values in the GUI, andthe system may display 6 images as thumbnails, the images being pulledfrom approximately 0 seconds, 14,400 seconds, 28,800 seconds, 43,200seconds, 57,600 seconds, and 72,000 seconds into the duration of the 24hours of video. Each thumbnail may correspond to a duration of videoequal to the length of the original video being searched divided by theplurality of thumbnails to be displayed. In this example, each of thesix thumbnails would initially correspond to six distinct 4-hourportions of the original 24 hours of video. In this way, the totalduration of video is visually divided into a plurality of distinctthumbnails, each thumbnail associated with a different portion of thetotal duration of video, without actually loading, downloading, ordividing the duration of recorded video.

The images may be displayed as selectable thumbnails which, onceselected, repeat the process of pulling images from within evenlyspaced, periodic intervals of the portion of video associated with theselected thumbnail and displaying them as additional selectablethumbnails in the GUI. Continuing from the example above, if a userselects the thumbnail associated with seconds 14,401 to 28,800 seconds,(roughly the time period from 4 to 8 hours within the original 24 hourvideo), the subsequently displayed thumbnails in the GUI will be pulledonly from within the 14,401 to 28,800 second time period. This processmay continue, shortening the duration of video being displayed asthumbnails, until the duration of video being reviewed reaches, forexample, about ten minutes or more or less, after which the video may bedownloaded and displayed to the user in the GUI as a viewable video.

BRIEF DESCRIPTION OF THE DRAWINGS

Select examples of variations within the scope of the invention willbecome more fully understood from the detailed description and theaccompanying drawings, wherein:

FIG. 1 depicts a graphical user interface for viewing, searching, andselecting segments of video on a video search system according to onevariation; and

FIG. 2 depicts a flow chart of an application communication protocolaccording to one variation.

DETAILED DESCRIPTION OF ILLUSTRATIVE VARIATIONS

The following description of the variations is merely illustrative innature and is in no way intended to limit the scope of the invention,its application, or uses. The following description of variants is onlyillustrative of components, elements, acts, products, and methodsconsidered to be within the scope of the invention and are not in anyway intended to limit such scope by what is specifically disclosed ornot expressly set forth. The components, elements, acts, products, andmethods as described herein may be combined and rearranged other than asexpressly described herein and still are considered to be within thescope of the invention.

A method may include providing a computer having non-transitory memoryfor storing machine instructions that may be executed by the computer,the machine instructions optionally implementing the following taskswhen executed by the computer: recording a first duration of video and afirst plurality of images from a camera, the first plurality of imagesassociated chronologically with the first duration of video; storing thefirst duration of video in a data storage medium while simultaneouslystoring the plurality of images in the data storage medium; providing aGUI constructed and arranged to display a first plurality of thumbnailsand being constructed and arranged to receive a user input of a firstvalue for the first duration of video to be viewed and searched and userinput of a second value for the first plurality of thumbnails to bedisplayed in the GUI; receiving the first value and the second value;searching the data storage medium for a second plurality of images equalin number to that of the second value; selecting each of the individualimages in the second plurality of images by selecting images that may bechronologically and evenly distributed throughout the duration of thefirst duration of video; and displaying each image in the secondplurality of images as individual thumbnails in the first plurality ofthumbnails in the GUI wherein each of the individual thumbnails in thefirst plurality of thumbnails may be a selectable hyperlink.

A method may include providing a GUI constructed and arranged to displaya first plurality of thumbnails and being constructed and arranged toreceive a user input of a first value for a first duration of video tobe viewed and searched and user input of a second value for the firstplurality of thumbnails to be displayed in the GUI; receiving the firstvalue and the second value; searching an object store for a secondplurality of images equal in number to that of the second value;selecting each of the individual images in the second plurality ofimages by selecting images that may be chronologically and evenlydistributed throughout the duration of the first duration of video;displaying each image in the second plurality of images as individualthumbnails in the first plurality of thumbnails in the GUI wherein eachof the individual thumbnails in the first plurality of thumbnails may bea selectable hyperlink; receiving user input in the form of selecting athumbnail; repeating the tasks of receiving, searching, selecting, anddisplaying until the duration of a video segment reaches a predeterminedlower limit; and displaying the video segment in the GUI as viewablevideo.

A method may include recording a first duration of video and a firstplurality of images from a camera, the first plurality of imagesassociated chronologically with the first duration of video; storing thefirst duration of video in an object store while simultaneously storingthe plurality of images in the object store; providing a GUI constructedand arranged to display a first plurality of thumbnails and beingconstructed and arranged to receive a user input of a first value forthe first duration of video to be viewed and searched and user input ofa second value for the first plurality of thumbnails to be displayed inthe GUI; receiving the first value and the second value; searching theobject store for a second plurality of images equal in number to that ofthe second value; selecting each of the individual images in the secondplurality of images by selecting images that are chronologically andevenly distributed throughout the duration of the first duration ofvideo; displaying each image in the second plurality of images asindividual thumbnails in the first plurality of thumbnails in the GUIwherein each of the individual thumbnails in the first plurality ofthumbnails may be a selectable hyperlink; receiving user input in theform of selecting a thumbnail; repeating the tasks of receiving,searching, selecting, and displaying until the duration of a videosegment reaches a predetermined lower limit; and displaying the videosegment in the GUI as viewable video.

Referring to FIGS. 1 and 2; a web browser 22 may be accessible by auser. A graphical user interface 26 may be provided by the webapplication programming interface 24 in the browser 22. The GUI 26 maybe constructed and arranged to receive user input values such as accountnumber 60; video recording device 62; stream identification 64; startand end times of recorded video to be searched 66 or alternatively aninput for a duration of recorded video to be viewed; calendar dates ofrecorded video to be viewed 76; and number or count of thumbnails to beviewed in the GUI 68. The named user input values are demonstrative onlyand additional user inputs may be contemplated and are considered to bewithin the scope of the invention. The GUI may display a first pluralityof user selectable thumbnails 70; a second plurality of user selectablethumbnails 72; a third plurality of user selectable thumbnails 74; andso on with each subsequent selection of an individual thumbnail. The GUImay display a viewable video 78. Each individual thumbnail in any of theplurality of thumbnails may display a representative image 80, 82, 84and each individual thumbnail in any of the plurality of thumbnails maycorrespond to a portion of the recorded video to be viewed. That is, afirst image/thumbnail may be representative of a first portion of therecord video to be viewed, and a second image/thumbnail may berepresentative of a chronologically second portion of the record videoto be viewed, and a third image/thumbnail may be representative of achronologically third portion of the record video to be viewed, and soon wherein the entire duration of the recorded video to be viewed isspread across the portions of recorded to be viewed and which arerepresented by their respective image/thumbnail. A user may select afirst thumbnail representing a first portion of the recorded video to beviewed from the first plurality of user selectable thumbnails 70, 72, 74after which the web application programming interface 24 may display asubsequent plurality of user selectable thumbnails 70, 72, 74representing a plurality of portions of the first portion. A user maycontinue to select thumbnails until the duration of the portions ofvideo being searched reaches a lower limit, after which the webapplication programming interface 24 may display viewable video 78.

Referring to FIGS. 1 and 2; a computer system for video management 10may periodically record via a recorder container 12 at least one firstvideo file 14, at least one first image 16 associated with the at leastone first video file 14, and a plurality of images 18 associated withthe at least one first video file 18 to an object store 20. The computersystem for video management 10 may provide a graphical user interface(GUI) 26 via a browser 22 to a user. The GUI may be constructed andarranged to receive as an input 60, 62, 64, 66, 68: a user determinedduration of recorded video 54 to be viewed and a user determined countof video portions 52 into which the duration of recorded video will berepresentatively split and displayed as plurality of thumbnails. A webapplication programming interface 24 may receive from the browser 22 theduration of recorded video 54 to be viewed and the user determined countof video portions 52 to be displayed in the GUI 26. The web applicationprogramming interface 24 may display a number of thumbnails equal to theuser determined count in the GUI, each of the thumbnails beingdetermined by the web application programming interface 24 asrepresentative of a shortened portion of the duration of recorded video54 to be viewed e.g. the first recorded image of the shortened portionof the duration of the recorded video 54. That is, the web applicationprogramming interface 24 may display as thumbnails the first image 16which corresponds to a shortened portion of recorded video to be viewed.Images may be identified by a unique timestamp 28 which may bedetermined by the web application programming interface 24. Each videosegment and image may be saved within an object store 20 according to aname in the form of a unique alphanumeric identifier that may be made upof four unique elements identifying the MAC address of the camera fromwhich the video segment or image was captured; the stream ID; anidentifier establishing whether the saved object is a video segment oran image; and a unique timestamp. The four unique elements of the uniqueidentifier may be a string of alphanumeric characters. As a non-limitingexample, the unique identifier may be a sixteen-digit numeric identifierwherein each of the four unique elements are identified by fourcharacters. The MAC address may be a globally unique identifier of aphysical piece of hardware, such as a camera. The stream ID may be, forexample, any output from a physical piece of hardware such as a camera,digital video recorder, network video recorder, web stream, or anydigital signal that may or may not be dewarped into a plurality ofviewing angles i.e. in the case where a camera may include a fish-eyestyle lens or three-hundred sixty capture. Alternatively, the stream IDmay be or may include incrementally assigned numbers or a randomizedunique number. The identifier may establish whether the saved object isa video segment or an image. The unique timestamp may be a numericalvalue calculated from a Unix timestamp relative to the duration of thevideo being stored e.g. in a ten-minute portion of recorded video, thetime stamp may be the Unix time stamp divided by the duration of the tenminute portion in seconds and rounded up or down. As an example, whenrecording from a continuous stream, the system may be delineatingten-minute “portions” of video at 0 seconds to 36000 seconds, 36001second to 72000 seconds, and so on. Similarly, an image at 32000 secondsmay have a unique timestamp calculated from a Unix timestamp relative tothe 32000 second position of the image.

A table may calculate and simplify the above exemplary sixteen-digitalphanumeric identifier into an alphanumeric identifier having fewercharacters to further expedite the searching of recorded video andimages.

The web application programming interface 24 may list, identify, orstore images or portions of recorded video by their unique timestamp 28,which may include listing, identifying, or storing images 28 accordingto a shortened portion of recorded video to which they correspond. Theweb application programming interface 24 may determine which images tobe displayed in the GUI 26 by searching the object store 20 for theimages having unique identifiers which correspond to being the firstimage 16 in a particular segment of video based upon value of the uniqueidentifier 32, or a combination of any of the four unique elements thatmay make up the unique numeric identifier 32. In the event that the webapplication programming interface cannot locate the desired image orportion of recorded video, the web application programming interface mayperform a search for approximate matches 36, predecessor, successor, or“nearest neighbors” by increasing or decreasing the value of the uniquealphanumeric identifier to locate an appropriate image of portion ofrecorded video. If the web application programming interface againcannot locate the desired image or portion of recorded video, the webapplication programming interface may strike the last value of theunique alphanumeric identifier 40 and perform the search again. Once theappropriate image has been found, it may be output and displayed asthumbnails which may be selectable URL links.

After the web application programming interface 24 has determined whichimages to be displayed in the GUI, it may provide said images asclickable thumbnails that each function as an in-browser hyperlink thatmay instruct the web application programming interface 24 to once againdisplay a number of thumbnails equal to the user determined count in theGUI, each of the thumbnails being determined by the web applicationprogramming interface 24 as representative of a shortened portion of aduration of recorded video 54 to be viewed e.g. the first recorded imageof the shortened portion of the duration of the recorded video 54. Thatis, the web application programming interface 24 may display asthumbnails the first recorded image which corresponds to a shortenedportion of recorded video to be viewed. This process of user thumbnailselection, representative subdivision of the recorded video to beviewed, and display of representative thumbnails in the GUI may berepeated until the duration of recorded video to be viewed reaches apredetermined minimum duration at which point a final portion of theduration of recorded video to be viewed may displayed as a viewablevideo in the browser. The final portion of the duration of recordedvideo to be viewed may be displayed in the GUI as viewable video 78 whenthe web application programming interface 24 determines that thepredetermined minimum duration has been reached.

For non-limiting exemplary purposes, images may be selected anddownloaded from the object store according to an alphanumericidentifier. The images searched, selected, and downloaded may includetimestamps associated with periodic intervals within the duration ofvideo. As a non-limiting example, a user wishing to review 48 hours ofvideo and view 6 thumbnails in the GUI may enter such values in the GUI,and the system may display 6 images as thumbnails, the images beingpulled from approximately 0 seconds, 28,800 seconds, 57,600 seconds,86,400 seconds, 115,200 seconds, and 144,000 seconds into the durationof the 48 hours of video. Each thumbnail may correspond to a duration ofvideo equal to the length of the original video being searched dividedby the plurality of thumbnails to be displayed. In this example, each ofthe six thumbnails would initially correspond to six distinct 8-hourportions of the original 48 hours of video. In this way, the totalduration of video is visually divided into a plurality of distinctthumbnails, each thumbnail associated with a different portion of thetotal duration of video, without actually loading, downloading, ordividing the duration of recorded video.

The images may be displayed as selectable thumbnails which, onceselected, repeat the process of pulling images from within evenlyspaced, periodic intervals of the portion of video associated with theselected thumbnail and displaying them as additional selectablethumbnails in the GUI. Continuing from the example above, if a userselects the thumbnail associated with seconds 28,801 to 57,600 seconds(roughly the time period from 8 to 16 hours within the original 48 hourvideo) the subsequently displayed thumbnails in the GUI will be pulledonly from within the 28,801 to 57,600 second time period. This processmay continue, representatively shortening the duration of video beingdisplayed as thumbnails, until the duration of video being reviewedreaches, for example, about ten minutes or more or less, after which thevideo may be downloaded and displayed to the user in the GUI as aviewable video.

The computer system for video management may include instructions thatmay be ran, for example, in a pod in a Kubernetes cluster, on a virtualmachine, or on local hardware or “bare metal” hardware such a laptop orpersonal computer. These non-limiting environments in which the computersystem for video management that may include instructions are providedfor exemplary purposes only and the scope of the invention anticipatesalternate suitable environments.

According to a variation 1, a method may include providing a computerhaving non-transitory memory for storing machine instructions that maybe executed by the computer, the machine instructions optionallyimplementing the following tasks when executed by the computer:recording a first duration of video and a first plurality of images froma camera, the first plurality of images associated chronologically withthe first duration of video; storing the first duration of video in adata storage medium while simultaneously storing the plurality of imagesin the data storage medium; providing a GUI constructed and arranged todisplay a first plurality of thumbnails and being constructed andarranged to receive a user input of a first value for the first durationof video to be viewed and searched and user input of a second value forthe first plurality of thumbnails to be displayed in the GUI; receivingthe first value and the second value; searching the data storage mediumfor a second plurality of images equal in number to that of the secondvalue; selecting each of the individual images in the second pluralityof images by selecting images that may be chronologically and evenlydistributed throughout the duration of the first duration of video; anddisplaying each image in the second plurality of images as individualthumbnails in the first plurality of thumbnails in the GUI wherein eachof the individual thumbnails in the first plurality of thumbnails may bea selectable hyperlink.

Variation 2 may include a method as set forth in variation 1 and mayfurther include the steps of: receiving user input in the form ofselecting a thumbnail; searching the data storage medium for a thirdplurality of images equal in number to that of the second value;selecting each of the individual images in the third plurality of imagesby identifying images that may be chronologically evenly distributedthroughout the duration of a second duration of video, the secondduration of video being the duration of video corresponding to theduration between the image associated with user selected thumbnail and asubsequent image; and displaying each image in the third plurality ofimages as individual thumbnails in a second plurality of thumbnails inthe GUI wherein each of the individual thumbnails in the secondplurality of thumbnails may be a selectable hyperlink.

Variation 3 may include a method as set forth in any of variations 1-2and may further include the steps of repeating the tasks of receiving,searching, selecting, and displaying until the duration of a videosegment reaches a predetermined lower limit; and displaying the videosegment in the GUI as viewable video.

Variation 4 may include a method as set forth in any of variations 1-3wherein the predetermined lower limit may be about ten minutes.

Variation 5 may include a method as set forth in any of variations 1-4wherein individual images and video segments may include a uniqueidentifier that may include a MAC address of a camera from which thevideo segment or image was captured, a stream ID, an identifierestablishing whether the saved object may be a video segment or animage, and a unique timestamp.

Variation 6 may include a method as set forth in any of variations 1-5wherein searching the data storage medium for a second plurality ofimages equal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; and performing a search for approximate matches of theindividual images in the second plurality of images.

Variation 7 may include a method as set forth in any of variations 1-6wherein searching the data storage medium for a second plurality ofimages equal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; performing a search for approximate matches of theindividual images in the second plurality of images; determining thatindividual images in the second plurality of images cannot be found;removing the last digit in the unique identifier; and performing asearch for approximate matches of the individual images in the secondplurality of images.

Variation 8 may include a method as set forth in any of variations 1-7may further include calculating and simplifying the unique identifierinto a second unique identifier having fewer characters.

According to a variation 9, a method may include providing a GUIconstructed and arranged to display a first plurality of thumbnails andbeing constructed and arranged to receive a user input of a first valuefor a first duration of video to be viewed and searched and user inputof a second value for the first plurality of thumbnails to be displayedin the GUI; receiving the first value and the second value; searching anobject store for a second plurality of images equal in number to that ofthe second value; selecting each of the individual images in the secondplurality of images by selecting images that may be chronologically andevenly distributed throughout the duration of the first duration ofvideo; displaying each image in the second plurality of images asindividual thumbnails in the first plurality of thumbnails in the GUIwherein each of the individual thumbnails in the first plurality ofthumbnails may be a selectable hyperlink; receiving user input in theform of selecting a thumbnail; repeating the tasks of receiving,searching, selecting, and displaying until the duration of a videosegment reaches a predetermined lower limit; and displaying the videosegment in the GUI as viewable video.

Variation 10 may include a method as set forth in variation 9 whereinthe predetermined lower limit may be about ten minutes.

Variation 11 may include a method as set forth in any of variations 9-10wherein individual images and video segments may include a uniqueidentifier that may include a MAC address of a camera from which thevideo segment or image was captured, a stream ID, an identifierestablishing whether the saved object may be a video segment or animage, and a unique timestamp.

Variation 12 may include a method as set forth in any of variations 9-11wherein searching the object store for a second plurality of imagesequal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; and performing a search for approximate matches of theindividual images in the second plurality of images.

Variation 13 may include a method as set forth in any of variations 9-12wherein searching the object store for a second plurality of imagesequal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; performing a search for approximate matches of theindividual images in the second plurality of images; determining thatindividual images in the second plurality of images cannot be found;removing the last digit in the unique identifier; and performing asearch for approximate matches of the individual images in the secondplurality of images.

Variation 14 may include a method as set forth in any of variations 9-13and may further include calculating and simplifying the uniqueidentifier into a second unique identifier having fewer characters.

According to variation 15, a method may include recording a firstduration of video and a first plurality of images from a camera or anyother source, the first plurality of images associated chronologicallywith the first duration of video; storing the first duration of video inan object store while simultaneously storing the plurality of images inthe object store; providing a GUI constructed and arranged to display afirst plurality of thumbnails and being constructed and arranged toreceive a user input of a first value for the first duration of video tobe viewed and searched and user input of a second value for the firstplurality of thumbnails to be displayed in the GUI; receiving the firstvalue and the second value; searching the object store for a secondplurality of images equal in number to that of the second value;selecting each of the individual images in the second plurality ofimages by selecting images that are chronologically and evenlydistributed throughout the duration of the first duration of video;displaying each image in the second plurality of images as individualthumbnails in the first plurality of thumbnails in the GUI wherein eachof the individual thumbnails in the first plurality of thumbnails may bea selectable hyperlink; receiving user input in the form of selecting athumbnail; repeating the tasks of receiving, searching, selecting, anddisplaying until the duration of a video segment reaches a predeterminedlower limit; and displaying the video segment in the GUI as viewablevideo.

Variation 16 may include a method as set forth in variation 15 whereinindividual images and video segments may include a unique identifierthat may include a MAC address of a camera from which the video segmentor image was captured, a stream ID, an identifier establishing whetherthe saved object may be a video segment or an image, and a uniquetimestamp.

Variation 17 may include a method as set forth in any of variations15-16 wherein searching the object store for a second plurality ofimages equal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; and performing a search for approximate matches of theindividual images in the second plurality of images.

Variation 18 may include a method as set forth in any of variations15-17 wherein searching the object store for a second plurality ofimages equal in number to that of the second value may further includedetermining that individual images in the second plurality of imagescannot be found; performing a search for approximate matches of theindividual images in the second plurality of images; determining thatindividual images in the second plurality of images cannot be found;removing the last digit in the unique identifier; and performing asearch for approximate matches of the individual images in the secondplurality of images.

Variation 19 may include a method as set forth in any of variations15-18 may further include calculating and simplifying the uniqueidentifier into a second unique identifier having fewer characters.

As required, detailed variations of the present invention are disclosedherein; however, it is to be understood that the disclosed variationsare merely exemplary of the invention that may be embodied in variousand alternative forms. The figures are not necessarily to scale; somefeatures may be exaggerated or minimized to show details of particularcomponents or steps. Therefore, specific structural and functionaldetails disclosed herein are not to be interpreted as limiting, butmerely as a representative basis for teaching one skilled in the art tovariously employ the present invention

The above description of variations within the scope of the invention ismerely demonstrative in nature and, thus, variations thereof are not tobe regarded as a departure from the spirit and scope of the inventionsdisclosed within this document.

What is claimed is:
 1. A method comprising: providing a computer havingnon-transitory memory for storing machine instructions that are to beexecuted by the computer, the machine instructions implementing thefollowing tasks when executed by the computer: recording a firstduration of video and a first plurality of images from a camera, thefirst plurality of images associated chronologically with the firstduration of video; storing the first duration of video in a data storagemedium while simultaneously storing the plurality of images in the datastorage medium; providing a GUI constructed and arranged to display afirst plurality of thumbnails and being constructed and arranged toreceive a user input of a first value for the first duration of video tobe viewed and searched and user input of a second value for the firstplurality of thumbnails to be displayed in the GUI; receiving the firstvalue and the second value; searching the data storage medium for asecond plurality of images equal in number to that of the second value;selecting each of the individual images in the second plurality ofimages by selecting images that are chronologically and evenlydistributed throughout the duration of the first duration of video;displaying each image in the second plurality of images as individualthumbnails in the first plurality of thumbnails in the GUI wherein eachof the individual thumbnails in the first plurality of thumbnails is aselectable hyperlink; receiving user input in the form of selecting athumbnail; searching the data storage medium for a third plurality ofimages equal in number to that of the second value; selecting each ofthe individual images in the third plurality of images by identifyingimages that are chronologically evenly distributed throughout theduration of a second duration of video, the second duration of videobeing the duration of video corresponding to the duration between theimage associated with user selected thumbnail and a subsequent image;and displaying each image in the third plurality of images as individualthumbnails in a second plurality of thumbnails in the GUI wherein eachof the individual thumbnails in the second plurality of thumbnails is aselectable hyperlink.
 2. The method of claim 1, further comprising thesteps of repeating the tasks of receiving, searching, selecting, anddisplaying until the duration of a video segment reaches a predeterminedlower limit; and displaying the video segment in the GUI as viewablevideo.
 3. The method of claim 2, wherein the predetermined lower limitis about ten minutes.
 4. The method of claim 1, wherein the individualimages and the video segment include a unique identifier comprising aMAC address of a camera from which the video segment or the individualimage was captured, a stream ID, a video or image identifier, or aunique timestamp.
 5. The method of claim 4, wherein searching the datastorage medium for a second plurality of images equal in number to thatof the second value includes: determining that individual images in thesecond plurality of images cannot be found; and performing a search forapproximate matches of the individual images in the second plurality ofimages.
 6. The method of claim 5, wherein searching the data storagemedium for a second plurality of images equal in number to that of thesecond value further includes: removing the last digit in the uniqueidentifier; and performing a search for approximate matches of theindividual images in the second plurality of images.
 7. The method ofclaim 4, further comprising calculating and simplifying the uniqueidentifier into a second unique identifier having fewer characters.
 8. Amethod comprising: providing a GUI configured to display a firstplurality of thumbnails and to receive a first value for a firstduration of video to be viewed and a second value for a number of thefirst plurality of thumbnails to be displayed in the GUI; receiving thefirst and second values; searching an object store for a secondplurality of images equal in number to second value to obtain eachindividual images in the second plurality of images chronologically andevenly distributed throughout the duration of the first duration ofvideo; displaying each individual image in the second plurality ofimages as individual thumbnails in the first plurality of thumbnails inthe GUI wherein each of the individual thumbnails in the first pluralityof thumbnails is a selectable hyperlink; receiving user input in theform of selecting a thumbnail; repeating the steps of first receiving,searching, displaying until a duration of a video segment associatedwith the thumbnail reaches a predetermined lower limit; and displayingthe video segment in the GUI as viewable video.
 9. The method of claim8, wherein the predetermined lower limit is about ten minutes.
 10. Themethod of claim 9, wherein the individual images and the video segmentinclude a unique identifier comprising a MAC address of a camera fromwhich the video segment or the individual image was captured, a streamID, a video or image identifier, or a unique timestamp.
 11. The methodof claim 10, wherein searching the object store for a second pluralityof images equal in number to that of the second value includes:determining that individual images in the second plurality of imagescannot be found; and performing a search for approximate matches of theindividual images in the second plurality of images.
 12. The method ofclaim 11, wherein searching the object store for a second plurality ofimages equal in number to that of the second value further includes:removing the last digit in the unique identifier; and performing asearch for approximate matches of the individual images in the secondplurality of images.
 13. The method of claim 10, further comprisingcalculating and simplifying the unique identifier into a second uniqueidentifier having fewer characters.
 14. A method comprising: recording afirst duration of video and a first plurality of images from a camera,the first plurality of images associated chronologically with the firstduration of video; storing the first duration of video and the pluralityof images in an object store; providing a GUI configured to display afirst plurality of thumbnails and to receive a first value for the firstduration of video to be viewed and a second value for a number of thefirst plurality of thumbnails to be displayed in the GUI; receiving thefirst and second values; searching the object store for a secondplurality of images equal in number to the second value to obtain eachindividual images in the second plurality of images chronologically andevenly distributed throughout the duration of the first duration ofvideo; displaying each individual image in the second plurality ofimages as individual thumbnails in the first plurality of thumbnails inthe GUI wherein each of the individual thumbnails in the first pluralityof thumbnails is a selectable hyperlink; receiving user input in theform of selecting a thumbnail; repeating the steps of first receiving,searching, and displaying until a duration of a video segment associatedwith the thumbnail reaches a predetermined lower limit; and displayingthe video segment in the GUI as viewable video.
 15. The method of claim14, wherein the individual images and the video segment include a uniqueidentifier comprising a MAC address of a camera from which the videosegment or the individual image was captured, a stream ID, a video orimage identifier or a unique timestamp.
 16. The method of claim 15,wherein searching the object store for a second plurality of imagesequal in number to that of the second value includes: determining thatindividual images in the second plurality of images cannot be found; andperforming a search for approximate matches of the individual images inthe second plurality of images.
 17. The method of claim 16, whereinsearching the object store for a second plurality of images equal innumber to that of the second value further includes: removing the lastdigit in the unique identifier; and performing a search for approximatematches of the individual images in the second plurality of images. 18.The method as set forth in claim 15, further comprising calculating andsimplifying the unique identifier into a second unique identifier havingfewer characters.